// 导入 axios 库
import axios from "axios";

// 定义 API 的基础 URL
const base_url = "https://restapi.amap.com/v3/weather";
// API 文档 :https://lbs.amap.com/api/webservice/guide/api/weatherinfo

// 创建 axios 实例
let instance = axios.create({
  timeout: 1000 * 60,
  baseURL: base_url,
});

// 设置 axios 默认携带跨域凭证
axios.defaults.withCredentials = true;

let loadingInstance;

// 添加请求拦截器
instance.interceptors.request.use(
  function (config) {
    // 在发送请求之前显示加载提示
    loadingInstance = ElLoading.service({
      text: "正在努力加载",
    });
    return config;
  },
  function (error) {
    // 对请求错误进行处理，关闭加载提示并显示错误信息
    loadingInstance.close();
    ElMessage.error({
      message: "程序遇到恐怖袭击，无法成功加载",
    });
    return Promise.reject(error);
  }
);

// 添加响应拦截器
instance.interceptors.response.use(
  function (response) {
    // 对响应数据进行处理，关闭加载提示
    loadingInstance.close();
    return response;
  },
  function (error) {
    // 对响应错误进行处理，关闭加载提示
    loadingInstance.close();
    return Promise.reject(error);
  }
);

// 导出 axios 实例
export default instance;